home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / elk-2_0.lha / elk-2.0 / include / extern.h < prev    next >
C/C++ Source or Header  |  1992-11-22  |  17KB  |  501 lines

  1. #ifndef EXTERN_H
  2. #define EXTERN_H
  3.  
  4. C_LINKAGE_BEGIN
  5.  
  6. /* autoload.c:
  7.  */
  8. extern Object V_Autoload_Notifyp;
  9. extern Object P_Autoload P_((Object, Object));
  10. extern Object Do_Autoload P_((Object, Object));
  11.  
  12. /* bignum.c:
  13.  */
  14. extern int Bignum_Zero P_((Object));
  15. extern int Bignum_Positive P_((Object));
  16. extern int Bignum_Negative P_((Object));
  17. extern int Bignum_Even P_((Object));
  18. extern Object Make_Bignum P_((char*, int, int));
  19. extern Object Integer_To_Bignum P_((int));
  20. extern Object Bignum_Divide P_((Object, Object));
  21. extern Object Bignum_Abs P_((Object));
  22. extern Object Bignum_Plus P_((Object, Object));
  23. extern Object Bignum_Minus P_((Object, Object));
  24. extern Object Bignum_Fixnum_Multiply P_((Object, Object));
  25. extern Object Bignum_Multiply P_((Object, Object));
  26. extern Object Bignum_Fixnum_Divide P_((Object, Object));
  27. extern Object Double_To_Bignum P_((double));
  28. extern Object Unsigned_To_Bignum P_((unsigned));
  29. extern Object Bignum_To_String P_((Object, int));
  30. extern double Bignum_To_Double P_((Object));
  31. extern Bignum_Equal P_((Object, Object));
  32. extern Bignum_Greater P_((Object, Object));
  33. extern Bignum_Less P_((Object, Object));
  34. extern Bignum_Eq_Less P_((Object, Object));
  35. extern Bignum_Eq_Greater P_((Object, Object));
  36.  
  37.  
  38. /* bool.c:
  39.  */
  40. extern Object P_Booleanp P_((Object));
  41. extern Object P_Not P_((Object));
  42. extern Object P_Eq P_((Object, Object));
  43. extern Object P_Eqv P_((Object, Object));
  44. extern Object P_Equal P_((Object, Object));
  45. extern int Eqv P_((Object, Object));
  46. extern int Equal P_((Object, Object));
  47.  
  48. /* char.c:
  49.  */
  50. extern Object Make_Char P_((int));
  51. extern Object P_Charp P_((Object));
  52. extern Object P_Char_Upcase P_((Object));
  53. extern Object P_Char_Downcase P_((Object));
  54. extern Object P_Chr_Eq P_((Object, Object));
  55. extern Object P_Chr_Less P_((Object, Object));
  56. extern Object P_Chr_Greater P_((Object, Object));
  57. extern Object P_Chr_Eq_Less P_((Object, Object));
  58. extern Object P_Chr_Eq_Greater P_((Object, Object));
  59. extern Object P_Chr_CI_Eq P_((Object, Object));
  60. extern Object P_Chr_CI_Less P_((Object, Object));
  61. extern Object P_Chr_CI_Greater P_((Object, Object));
  62. extern Object P_Chr_CI_Eq_Less P_((Object, Object));
  63. extern Object P_Chr_CI_Eq_Greater P_((Object, Object));
  64. extern Object P_Char_Upper_Case P_((Object));
  65. extern Object P_Char_Lower_Case P_((Object));
  66. extern Object P_Char_Alphabetic P_((Object));
  67. extern Object P_Char_Numeric P_((Object));
  68. extern Object P_Char_Whitespace P_((Object));
  69. extern Object P_Char_To_Integer P_((Object));
  70. extern Object P_Integer_To_Char P_((Object));
  71.  
  72. /* cont.c:
  73.  */
  74. extern WIND *First_Wind, *Last_Wind;
  75. extern Object P_Call_CC P_((Object));
  76. extern Object P_Dynamic_Wind P_((Object, Object, Object));
  77. extern Object P_Control_Pointp P_((Object));
  78. extern Object P_Control_Point_Env P_((Object));
  79. extern Object P_Reentrant_Continuationsp P_((void));
  80. extern Object Internal_Call_CC P_((int, Object));
  81.  
  82. /* debug.c:
  83.  */
  84. extern Object P_Backtrace_List P_((int, Object*));
  85.  
  86. /* dump.c and dump.*.c:
  87.  */
  88. extern Object P_Dump P_((Object));
  89. extern Object Dump_Control_Point;
  90.  
  91. /* env.c:
  92.  */
  93. extern Object The_Environment, Global_Environment;
  94. extern Object P_The_Environment P_((void));
  95. extern Object P_Define P_((Object));
  96. extern Object P_Set P_((Object));
  97. extern Object P_Env_List P_((Object));
  98. extern Object Add_Binding P_((Object, Object, Object));
  99. extern Object Lookup_Symbol P_((Object, int));
  100. extern Object P_Define_Macro P_((Object));
  101. extern Object P_Boundp P_((Object));
  102. extern Object P_Global_Environment P_((void));
  103. extern Object P_Environmentp P_((Object));
  104. extern Object Env_To_List P_((Object));
  105. extern Object List_To_Env P_((Object));
  106.  
  107. /* error.c:
  108.  */
  109. extern Object Arg_True;
  110. extern Object P_Error P_((int, Object*));
  111. extern Object P_Reset P_((void));
  112. extern Primitive_Error P_((ELLIPSIS));
  113. extern Fatal_Error P_((ELLIPSIS));
  114. extern Range_Error P_((Object));
  115. extern Panic P_((char*));
  116.  
  117. /* exception.c:
  118.  */
  119. extern int Intr_Was_Ignored;
  120. extern void Intr_Handler P_((int));
  121. extern void Install_Intr_Handler P_((void));
  122. #ifdef POSIX_SIGNALS
  123. extern sigset_t Sigset_Old, Sigset_Block;
  124. #endif
  125.  
  126. /* feature.c:
  127.  */
  128. extern Object P_Featurep P_((Object));
  129. extern Object P_Provide P_((Object));
  130. extern Object P_Require P_((int, Object*));
  131.  
  132. /* heap.c:
  133.  */
  134. extern char *Hp, *Heap_Start, *Heap_End, *Free_Start, *Free_End;
  135. extern int GC_In_Progress;
  136. extern GCNODE *GC_List;
  137. extern Object Alloc_Object P_((int, int, int));
  138. extern Object P_Collect P_((void));
  139. extern Register_Before_GC P_((void (*)(ELLIPSIS)));
  140. extern Register_After_GC P_((void (*)(ELLIPSIS)));
  141.  
  142. /* io.c:
  143.  */
  144. extern Object Curr_Input_Port, Curr_Output_Port;
  145. extern Object Standard_Input_Port, Standard_Output_Port;
  146. extern Object P_Curr_Input_Port P_((void));
  147. extern Object P_Curr_Output_Port P_((void));
  148. extern Object P_Input_Portp P_((Object));
  149. extern Object P_Output_Portp P_((Object));
  150. extern Object P_Open_Input_File P_((Object));
  151. extern Object P_Open_Output_File P_((Object));
  152. extern Object P_Open_Input_Output_File P_((Object));
  153. extern Object P_Eof_Objectp P_((Object));
  154. extern Object P_With_Input P_((Object, Object));
  155. extern Object P_With_Output P_((Object, Object));
  156. extern Object P_Call_With_Input P_((Object, Object));
  157. extern Object P_Call_With_Output P_((Object, Object));
  158. extern Object General_Open_File P_((Object, int, Object));
  159. extern Object P_Open_Input_String P_((Object));
  160. extern Object P_Open_Output_String P_((void));
  161. extern Object P_Port_File_Name P_((Object));
  162. extern Object P_Tilde_Expand P_((Object));
  163. extern Object P_File_Existsp P_((Object));
  164. extern Object P_Close_Input_Port P_((Object));
  165. extern Object P_Close_Output_Port P_((Object));
  166. extern Object P_Port_Line_Number P_((Object));
  167. extern Object Get_File_Name P_((Object));
  168.  
  169. /* load.c:
  170.  */
  171. #if defined(CAN_DUMP) || defined(USE_LD)
  172. extern char Loader_Input[];
  173. #endif
  174. extern Object V_Load_Path, V_Load_Noisilyp, V_Load_Libraries;
  175. extern void Check_Loadarg P_((Object));
  176. extern Object General_Load P_((Object, Object));
  177. extern Object P_Load P_((int, Object*));
  178.  
  179. /* list.c:
  180.  */
  181. extern Object P_Cons P_((Object, Object));
  182. extern Object P_Car P_((Object));
  183. extern Object P_Cdr P_((Object));
  184. extern Object P_Setcar P_((Object, Object));
  185. extern Object P_Setcdr P_((Object, Object));
  186. extern Object P_Listp P_((Object));
  187. extern Object Const_Cons P_((Object, Object));
  188. extern Object P_List P_((int, Object*));
  189. extern Object P_Length P_((Object));
  190. extern Object P_Nullp P_((Object));
  191. extern Object P_Pairp P_((Object));
  192. extern Object P_Cxr P_((Object, Object));
  193. extern Object P_Cddr P_((Object));
  194. extern Object P_Cdar P_((Object));
  195. extern Object P_Cadr P_((Object));
  196. extern Object P_Caar P_((Object));
  197. extern Object P_Cdddr P_((Object));
  198. extern Object P_Cddar P_((Object));
  199. extern Object P_Cdadr P_((Object));
  200. extern Object P_Cdaar P_((Object));
  201. extern Object P_Caddr P_((Object));
  202. extern Object P_Cadar P_((Object));
  203. extern Object P_Caadr P_((Object));
  204. extern Object P_Caaar P_((Object));
  205. extern Object P_Caaaar P_((Object));
  206. extern Object P_Caaadr P_((Object));
  207. extern Object P_Caadar P_((Object));
  208. extern Object P_Caaddr P_((Object));
  209. extern Object P_Cadaar P_((Object)); 
  210. extern Object P_Cadadr P_((Object));
  211. extern Object P_Caddar P_((Object));
  212. extern Object P_Cadddr P_((Object));
  213. extern Object P_Cdaaar P_((Object));
  214. extern Object P_Cdaadr P_((Object));
  215. extern Object P_Cdadar P_((Object));
  216. extern Object P_Cdaddr P_((Object));
  217. extern Object P_Cddaar P_((Object));
  218. extern Object P_Cddadr P_((Object));
  219. extern Object P_Cdddar P_((Object));
  220. extern Object P_Cddddr P_((Object));
  221. extern Object P_Append P_((int, Object*));
  222. extern Object P_Append_Set P_((int, Object*));
  223. extern Object P_Last_Pair P_((Object));
  224. extern Object P_Reverse P_((Object));
  225. extern Object P_Reverse_Set P_((Object));
  226. extern Object P_List_Tail P_((Object, Object));
  227. extern Object P_List_Ref P_((Object, Object));
  228. extern Object P_Assq P_((Object, Object));
  229. extern Object P_Assv P_((Object, Object));
  230. extern Object P_Assoc P_((Object, Object));
  231. extern Object P_Memq P_((Object, Object));
  232. extern Object P_Memv P_((Object, Object));
  233. extern Object P_Member P_((Object, Object));
  234. extern Object P_Make_List P_((Object, Object));
  235. extern Object Copy_List P_((Object));
  236. extern Object General_Assoc P_((Object, Object, int));
  237. extern int Fast_Length P_((Object));
  238.  
  239. /* main.c:
  240.  */
  241. extern char *stkbase, *A_Out_Name;
  242. extern int Max_Stack, Interpreter_Initialized, Was_Dumped, GC_Debug;
  243. extern int Verbose, Case_Insensitive;
  244. extern SYMTAB *The_Symbols;
  245. extern Object P_Command_Line_Args P_((void));
  246. extern Object P_Exit P_((int, Object*));
  247. #ifndef ATEXIT
  248. extern void exit P_((int));
  249. #endif
  250.  
  251. /* math.c:
  252.  */
  253. extern Object Make_Integer P_((int));
  254. extern Object Make_Fixnum P_((int));
  255. extern Object Make_Unsigned P_((unsigned));
  256. extern Object Make_Reduced_Flonum P_((double));
  257. extern Object P_Numberp P_((Object));
  258. extern Object P_Complexp P_((Object));
  259. extern Object P_Realp P_((Object));
  260. extern Object P_Rationalp P_((Object));
  261. extern Object P_Integerp P_((Object));
  262. extern Object P_Abs P_((Object));
  263. extern Object P_Zerop P_((Object));
  264. extern Object P_Positivep P_((Object));
  265. extern Object P_Negativep P_((Object));
  266. extern Object P_Oddp P_((Object));
  267. extern Object P_Evenp P_((Object));
  268. extern Object P_Exactp P_((Object));
  269. extern Object P_Inexactp P_((Object));
  270. extern Object P_Inc P_((Object));
  271. extern Object P_Dec P_((Object));
  272. extern Object P_Generic_Equal P_((int, Object*));
  273. extern Object P_Generic_Less P_((int, Object*));
  274. extern Object P_Generic_Greater P_((int, Object*));
  275. extern Object P_Generic_Eq_Less P_((int, Object*));
  276. extern Object P_Generic_Eq_Greater P_((int, Object*));
  277. extern Object P_Generic_Plus P_((int, Object*));
  278. extern Object P_Generic_Minus P_((int, Object*));
  279. extern Object P_Generic_Multiply P_((int, Object*));
  280. extern Object P_Generic_Divide P_((int, Object*));
  281. extern Object P_Quotient P_((Object, Object));
  282. extern Object P_Remainder P_((Object, Object));
  283. extern Object P_Modulo P_((Object, Object));
  284. extern Object P_Gcd P_((int, Object*));
  285. extern Object P_Lcm P_((int, Object*));
  286. extern Object P_Floor P_((Object));
  287. extern Object P_Ceiling P_((Object));
  288. extern Object P_Truncate P_((Object));
  289. extern Object P_Round P_((Object));
  290. extern Object P_Sqrt P_((Object));
  291. extern Object P_Exp P_((Object));
  292. extern Object P_Log P_((Object));
  293. extern Object P_Sin P_((Object));
  294. extern Object P_Cos P_((Object));
  295. extern Object P_Tan P_((Object));
  296. extern Object P_Asin P_((Object));
  297. extern Object P_Acos P_((Object));
  298. extern Object P_Atan P_((int, Object*));
  299. extern Object P_Min P_((int, Object*));
  300. extern Object P_Max P_((int, Object*));
  301. extern Object P_Random P_((void));
  302. extern Object P_Srandom P_((Object));
  303. extern Object P_Number_To_String P_((int, Object*));
  304. extern double Get_Double P_((Object));
  305. extern Get_Integer P_((Object));
  306. extern Object Fixnum_To_String P_((Object, int));
  307. extern Object Flonum_To_String P_((Object));
  308.  
  309. /* prim.c:
  310.  */
  311. extern Define_Primitive P_((Object (*)(ELLIPSIS), char*, int, int,
  312.     enum discipline));
  313.  
  314. /* print.c:
  315.  */
  316. extern Object P_Write P_((int, Object*));
  317. extern Object P_Display P_((int, Object*));
  318. extern Object P_Write_Char P_((int, Object*));
  319. extern Object P_Newline P_((int, Object*));
  320. extern Object P_Format P_((int, Object*));
  321. extern Object P_Clear_Output_Port P_((int, Object*));
  322. extern Object P_Flush_Output_Port P_((int, Object*));
  323. extern Object P_Print P_((int, Object*));
  324. extern Object P_Get_Output_String P_((Object));
  325. extern Check_Output_Port P_((Object));
  326. extern Discard_Output P_((Object));
  327. extern Printf P_((ELLIPSIS));
  328. extern int Saved_Errno;
  329.  
  330. /* proc.c:
  331.  */
  332. extern char *Error_Tag;
  333. extern int Tail_Call;
  334. extern Object Sym_Lambda, Sym_Macro;
  335. extern Object Eval P_((Object));
  336. extern Object P_Eval P_((int, Object*));
  337. extern Object P_Apply P_((int, Object*));
  338. extern Object Funcall P_((Object, Object, int));
  339. extern Object P_Lambda P_((Object));
  340. extern Object P_Map P_((int, Object*));
  341. extern Object P_Procedure_Env P_((Object));
  342. extern Object P_Procedure_Lambda P_((Object));
  343. extern Object Make_Primitive
  344.     P_((Object(*)(ELLIPSIS), char*, int, int, enum discipline));
  345. extern Object P_For_Each P_((int, Object*));
  346. extern Object P_Procedurep P_((Object));
  347. extern Object Funcall_Compound P_((Object, Object, int));
  348. extern Object Funcall_Primitive P_((Object, Object, int));
  349. extern Funcall_Control_Point P_((Object, Object, int));
  350. extern Object P_Macro P_((Object));
  351. extern Object P_Macro_Body P_((Object));
  352. extern Object P_Macro_Expand P_((Object));
  353. extern Object P_Primitivep P_((Object));
  354. extern Object P_Compoundp P_((Object));
  355. extern Object P_Macrop P_((Object));
  356. extern Check_Procedure P_((Object));
  357.  
  358. /* promise.c:
  359.  */
  360. extern Object P_Delay P_((Object));
  361. extern Object P_Force P_((Object));
  362. extern Object P_Promisep P_((Object));
  363. extern Object P_Promise_Env P_((Object));
  364.  
  365. /* read.c:
  366.  */
  367. extern Object Sym_Quote;
  368. extern Object Sym_Quasiquote, Sym_Unquote, Sym_Unquote_Splicing;
  369. extern Object General_Read P_((Object, int));
  370. extern Object P_Read P_((int, Object*));
  371. extern Object P_Read_Char P_((int, Object*));
  372. extern Object P_Peek_Char P_((int, Object*));
  373. extern Object P_Unread_Char P_((int, Object*));
  374. extern Object P_Read_String P_((int, Object*));
  375. extern Object P_Clear_Input_Port P_((int, Object*));
  376. extern Object Parse_Number P_((char*, int));
  377. extern Check_Input_Port P_((Object));
  378. extern Discard_Input P_((Object));
  379.  
  380. /* special.c:
  381.  */
  382. extern Object P_Quote P_((Object));
  383. extern Object P_If P_((Object));
  384. extern Object P_Let P_((Object));
  385. extern Object P_Letseq P_((Object));
  386. extern Object P_Letrec P_((Object));
  387. extern Object P_Case P_((Object));
  388. extern Object P_Cond P_((Object));
  389. extern Object P_And P_((Object));
  390. extern Object P_Or P_((Object));
  391. extern Object P_Do P_((Object));
  392. extern Object P_Quasiquote P_((Object));
  393. extern Object P_Fluid_Let P_((Object));
  394. extern Object P_Begin P_((Object));
  395. extern Object P_Begin1 P_((Object));
  396.  
  397. /* stab.c:
  398.  */
  399. extern SYMTAB *Snarf_Symbols P_((ELLIPSIS));  /* varying args */
  400. #ifdef INIT_OBJECTS
  401. extern SYMTAB *Open_File_And_Snarf_Symbols P_((char *));
  402. #endif
  403.  
  404.  
  405. /* stkmem.c:
  406.  */
  407. extern char *Safe_Malloc P_((unsigned));
  408. #ifndef USE_ALLOCA
  409. extern MEM_NODE *Mem_List;
  410. extern char *Mem_Alloc P_((unsigned));
  411. extern Object Save_GC_Nodes P_((void));
  412. #endif
  413.  
  414.  
  415. /* string.c:
  416.  */
  417. extern char Char_Map[];
  418. extern Object General_Make_String P_((char*, int, int));
  419. extern Object Make_String P_((char*, int));
  420. extern Object Make_Const_String P_((char*, int));
  421. extern Object P_Make_String P_((int, Object*));
  422. extern Object P_Stringp P_((Object));
  423. extern Object P_String P_((int, Object*));
  424. extern Object P_String_To_Number P_((int, Object*));
  425. extern Object P_Str_Eq P_((Object, Object));
  426. extern Object P_Str_Less P_((Object, Object));
  427. extern Object P_Str_Greater P_((Object, Object));
  428. extern Object P_Str_Eq_Less P_((Object, Object));
  429. extern Object P_Str_Eq_Greater P_((Object, Object));
  430. extern Object P_Str_CI_Eq P_((Object, Object));
  431. extern Object P_Str_CI_Less P_((Object, Object));
  432. extern Object P_Str_CI_Greater P_((Object, Object));
  433. extern Object P_Str_CI_Eq_Less P_((Object, Object));
  434. extern Object P_Str_CI_Eq_Greater P_((Object, Object));
  435. extern Object P_String_Length P_((Object));
  436. extern Object P_String_Ref P_((Object, Object));
  437. extern Object P_String_Set P_((Object, Object, Object));
  438. extern Object P_Substring P_((Object, Object, Object));
  439. extern Object P_String_Copy P_((Object));
  440. extern Object P_String_Append P_((int, Object*));
  441. extern Object P_List_To_String P_((Object));
  442. extern Object P_String_To_List P_((Object));
  443. extern Object P_Substring_Fill P_((Object, Object, Object, Object));
  444. extern Object P_String_Fill P_((Object, Object));
  445. extern Object P_Substringp P_((Object, Object));
  446. extern Object P_CI_Substringp P_((Object, Object));
  447.  
  448. /* symbol.c:
  449.  */
  450. extern Object Null, True, False, Unbound, Special, Void, Newline, Eof;
  451. extern Object Zero, One;
  452. extern Object Intern P_((char*));
  453. extern Object CI_Intern P_((char*));
  454. extern Object P_Oblist P_((void));
  455. extern Object P_Symbolp P_((Object));
  456. extern Object P_Symbol_To_String P_((Object));
  457. extern Object P_String_To_Symbol P_((Object));
  458. extern Object P_Put P_((int, Object*));
  459. extern Object P_Get P_((Object, Object));
  460. extern Object P_Symbol_Plist P_((Object));
  461. extern void Define_Variable P_((Object*, char*, Object));
  462. extern Object Var_Get P_((Object));
  463. extern void Var_Set P_((Object, Object));
  464.  
  465. /* terminate.c:
  466.  */
  467. extern Register_Terminate P_((Object, void (*)(ELLIPSIS)));
  468. extern Deregister_Terminate P_((Object));
  469. extern Terminate_All P_((int));
  470. extern void Call_Terminators P_((void));
  471.  
  472. /* type.c:
  473.  */
  474. extern TYPEDESCR Types[];
  475. extern Object P_Type P_((Object));
  476. extern Object P_Voidp P_((Object));
  477. extern Wrong_Type P_((Object, int));
  478. extern Wrong_Type_Combination P_((Object, char*));
  479. extern Define_Type P_((int, char*, int (*)(ELLIPSIS), int,  int (*)(ELLIPSIS),
  480.     int (*)(ELLIPSIS), int (*)(ELLIPSIS), int (*)(ELLIPSIS)));
  481.  
  482. /* vector.c:
  483.  */
  484. extern Object Make_Vector P_((int, Object));
  485. extern Object Make_Const_Vector P_((int, Object));
  486. extern Object P_Make_Vector P_((int, Object*));
  487. extern Object P_Vectorp P_((Object));
  488. extern Object P_Vector P_((int, Object*));
  489. extern Object P_Vector_Length P_((Object));
  490. extern Object P_Vector_Ref P_((Object, Object));
  491. extern Object P_Vector_Set P_((Object, Object, Object));
  492. extern Object P_Vector_To_List P_((Object));
  493. extern Object P_List_To_Vector P_((Object));
  494. extern Object P_Vector_Fill P_((Object, Object));
  495. extern Object P_Vector_Copy P_((Object));
  496. extern Object List_To_Vector P_((Object, int));
  497.  
  498. C_LINKAGE_END
  499.  
  500. #endif
  501.